package com.tianyang.yukuaifu.rxservice.interfaces;

import com.tianyang.yukuaifu.common.interfaces.UrlConstants;

import java.util.Map;

import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.POST;
import retrofit2.http.QueryMap;
import retrofit2.http.Url;
import rx.Observable;

/**
 * Description：plate-user接口
 * Created by xyj on 2024/3/18
 */
public interface PlateUserService {

    /**
     * 修改密码
     * @param param 请求参数
     */
    @POST(UrlConstants.updatePassword)
    Observable<Object> updatePassword(@Header("Authorization") String authorization, @Body Map<String, String> param);

    /**
     * 交易记录
     * @param param 请求参数
     */
    @POST(UrlConstants.merchantTradeDetail)
    Observable<Object> merchantTradeDetail(@Header("Authorization") String authorization, @Body Map<String, String> param);

    /**
     * 商户结算卡查询
     * @param param 请求参数
     */
    @GET(UrlConstants.queryUserSettlementCard)
    Observable<Object> queryUserSettlementCard(@Header("Authorization") String authorization, @QueryMap Map<String, String> param);

    /**
     * 商户结算卡更改
     * @param param 请求参数
     */
    @GET(UrlConstants.modifyUserSettlementCard)
    Observable<Object> modifyUserSettlementCard(@Header("Authorization") String authorization, @QueryMap Map<String, String> param);

    /**
     * 店铺门店列表
     * @param param 请求参数
     */
    @POST(UrlConstants.userMerchantStoresList)
    Observable<Object> userMerchantStoresList(@Header("Authorization") String authorization, @Body Map<String, String> param);

    /**
     * 切换店铺
     */
    @POST
    Observable<Object> getAnotherStoresToken(@Url String url, @Header("Authorization") String authorization);

    /**
     * 绑定码牌
     */
    @POST(UrlConstants.confirmPosBind)
    Observable<Object> confirmPosBind(@Header("Authorization") String authorization, @Body Map<String, String> param);

    /**
     * 获取码牌
     */
    @POST(UrlConstants.getCompositePoster)
    Observable<Object> getCompositePoster(@Header("Authorization") String authorization, @Body Map<String, String> param);

    /**
     * 注销
     */
    @POST(UrlConstants.cancellationAccount)
    Observable<Object> cancellationAccount(@Header("Authorization") String authorization);

    /**
     * 设备类型列表
     */
    @POST(UrlConstants.getDeviceTypeList)
    Observable<Object> getDeviceTypeList(@Header("Authorization") String authorization);

    /**
     * 设备列表
     */
    @POST(UrlConstants.getDeviceList)
    Observable<Object> getDeviceList(@Header("Authorization") String authorization, @Body Map<String, String> reqData);

    /**
     * 绑定设备
     */
    @POST(UrlConstants.bindingDevice)
    Observable<Object> bindingDevice(@Header("Authorization") String authorization, @Body Map<String, String> reqData);

    /**
     * 修改设备名称
     */
    @POST(UrlConstants.modifyDeviceName)
    Observable<Object> modifyDeviceName(@Header("Authorization") String authorization, @Body Map<String, String> reqData);

    /**
     * 关联设备
     */
    @POST(UrlConstants.relationDevice)
    Observable<Object> relationDevice(@Header("Authorization") String authorization, @Body Map<String, String> reqData);

    /**
     * 取消关联设备
     */
    @POST(UrlConstants.unRelationDevice)
    Observable<Object> unRelationDevice(@Header("Authorization") String authorization, @Body Map<String, String> reqData);
}
